home *** CD-ROM | disk | FTP | other *** search
-
- ================================================================
- === VERSION 3.6 CHANGES ------------------------------------->>>
- ================================================================
-
- Events & Commands :
-
- - Event : xTIMER TIME|SINGLE|REPEAT TIME|INTERVAL ON|OFF
- will provide you with accurate timing events - see the guide
- for details.
-
- - ClipBoard support for text clips is now provided for listviews.
- o When you load a file called Clips:0 (or any number 0-255) then
- the lv will load whatever is in that clipboard unit.
- o When you save a file whose file path starts with "CLIPS:" i.e.
- something like Clips:3, the lv will be saved to the given
- clipboard unit in correct iff format.
- o Moreover listviews will load any IFF-FTXT file correctly.
-
- - SHAREMENU GuiName - (Global command)
- Will share the menus of the named gui file. When the menu is
- selected it will be as if the other gui's (the one which has the
- actual menu events in it) menu was selected and all commands
- attached to it will be executed.
-
- - Menus will now accept many BARLABEL items.
-
- - Now you can give '#This' as the gui file name, and it will
- mean the current file - i.e. GuiOpen #This - will mean : open
- the file that this command appears in. This gives you more
- independent code.
-
- - CONTROL-R will now execute all xOnClose/Quit/Load commands
- it encounters while Re-Loading a file. Note that your gui
- will not re-open if there is no guiopen command in the
- xOnLoad event.
-
- - RESINFO FontHeight ScreenWidth ScreenHeight - is a new Global
- command with which you can give some info to Gui4Cli to enable
- it to resize the gui correctly on other people's systems.
-
- - Worked around gadtools limitation by which when you move a
- listview with the scroller and after try to continue with the
- arrow keys, it snaps back to the last record you had clicked
- on - now Gui4Cli will guess the line and scroll correctly.
-
- ARexx :
-
- - There is now a global variable named *REXXVAR which has
- special meaning. You use it as you would any global variable
- but when someone sends a rexx command to Gui4Cli from a
- rexx program which has OPTIONS RESULTS declared, then the
- contents of this variable will be returned and will be
- available from withing arexx as variable RESULT. So...
- >> SetVar "*REXXVAR" "'$mygui.gc/myvar'"
- ..would put whatever is in $mygui.gc/myvar into RESULT.
-
- Note the use of the quotes: one set for arexx, another for
- Gui4Cli (since $mygui.gc/myvar could be a string of words).
-
- - If you set OPTIONS RESULTS you will now cause the Gui4Cli
- command you have sent from an ARexx program to be executed
- synchronously. This has the advantage of returning a result.
- Without OPTIONS RESULTS the execution is asynchronous.
-
- - Also fixed some Gui4Cli<->ARexx communication errors..
- You can now run a rexx program with a public port and have
- it communicate back and forth with Gui4Cli without the
- deadlocks that used to occur.
-
- C Programmers Interface :
-
- - Have provided an include file with Gui4Cli internal
- structures and set up a mechanism whereby you can communicate
- with Gui4Cli, and in effect provide extensions to Gui4Cli's
- command set, as follows :
-
- - From outside programs -to-> Gui4Cli
- a) Send message and LOCK Gui4Cli, look at it's internal
- structures, manipulate variables, listviews etc, and then
- unlock it again, and let it continue, or
- b) Send command lines for it to execute (like rexx msgs)
-
- - From Gui4Cli -to-> outside programs
- Use the new command :
- > CALL PortName Command Arg1 Arg2... Arg6
- to send special Gui4Cli messages containing commands
- to outside programs, who should then process the commands
- using, if they want, any of Gui4Cli's internal structures,
- and give control back to Gui4Cli (maybe returning something)
-
- See the examples in the "Guis:Ext" directory for more info.
-
- IMPORTANT NOTE :
- - Changes have been made to the structures of the BETA version
- that was on my page !!! - Recompile or crash.
-
- Extensions :
-
- Two extensions can already be found in guis:ext :
-
- - GCSound - a 8SVX sample player (mono only for now) with the
- ability to load & play many samples simuiltaneously, change
- speed & volume while playing etc - Full gui is available in
- the same directory.
-
- - LVFormat - various functions which act on the current listview
- like : wordwrap, indent, justify etc
-
- New internal variables :
-
- $$SYS.AW - Active Window Title (may or may not be a Gui4Cli window)
- $$SYS.AS - Active Screen title
- $$SYS.ASN - Active Screen Name (if it's public)
- $$SYS.FS - Frontmost Screen Title
- $$SYS.FSN - Frontmost Screen Name (if it's public)
- If you need other data (width etc) you can SetScreen the current
- gui to the name you want (no need to open it) and read the
- $$SRC.xx vars.
-
- $$SYS.TIME - the current time (ex: 10:30:25 - hh:mm:ss)
- $$SYS.TS - the seconds part of the above time (i.e. 25)
- $$SYS.TM - the minutes part (i.e. 30)
- $$SYS.TH - the Hours part (i.e. 10)
-
- $$SYS.DATE - the date (see below for formats)
- - following available *only* for dd-mm-yy (CDN) format:
- $$SYS.DD - the Day part of the above date
- $$SYS.DM - the month part
- $$SYS.DY - the year part
-
- $$SYS.DAY - the day of the week (i.e. Monday)
-
- By default the date format is DD-MM-YY (15-07-98)
- You can change this with the SET command :
- > SET DATEFORMAT number - where number can be:
- 0 = DOS format -> dd-mmm-yy (15-Apr-98)
- 1 = INT format -> yy-mm-dd
- 2 = USA format -> mm-dd-yy
- 3 = CDN format -> dd-mm-yy (default)
- NOTE : the $$SYS.DD/DM/DY vars aply *only* to CDN format!
-
- Bug fixes :
-
- - Fixed 10 enforcer hits, only 1 of which was of any real danger,
- and you can thank Giuseppe Chillemi for pointing them out to me.
- Gui4Cli is now clean with Enforcer (until the next bug..)
- Also fixed an enforcer hit in c:gui.
-
- - Not actually a bug.. Now RUN will also receive a console which
- will be opened every time something is RUN.
-
- - Got the SAS 6.58 patch and recompiled, optimized and caught a
- few other small bugs too..
-
- - LVSearch will now stop at every string found - if there are many
- instances of a string in a lv line. The $$search.pos etc internal
- vars will show the position & length correctly. ** fixed again **
-
- - Fixed ReadVar trash if it read less than you asked for.
-
- - xICON can now be setgad HIDE|SHOW (had forgoten to put it..)
-
- - Fixed some GuiEditing graphics errors.
- - Also xICON new positions will now be saved (again forgoten)
-
- - SET DEBUGSTEP ON|OFF, will cause an easy requester to appear
- before every command is executed (in debug mode) so you can
- control execution (I used this for catching the enforcer bugs)
-
- - Setwintitle will now work even if window is not open.
-
- - Fixed a bug where messages returned from launches & pipes got
- confused with messages replied from AREXX and could lock Gui4Cli.
-
- - makedir will no long be confused if there is a / at the end
-
- - Fixed bug reported by Chris Ralph, where LVINSERT increased
- the total record count by 2 instead of 1
-
- ================================================================
- === VERSION 3.5 CHANGES ------------------------------------->>>
- ================================================================
-
- Mathematical Abilities :
-
- - Added mathematical expression evaluation and floating point numbers.
- You can now enclose an expression in brackets with a $ in front
- and Gui4Cli will evaluate it. Variables can be included :
- var = $(45*7.45+($OtherVar /25))
- say 'The answer is: $($var *2)\n'
- Moreover, inside the brackets you can use the math functions :
- abs(), sin(), cos(), tan(), log(), ln(), exp(), 'pi', etc
-
- - BECAREFULL with variables..
- You must leave a space or ')' or '(' or '\' after the var
- name otherwise Gui4Cli will not read the var name correctly.
- say '$($var*2)\n' <- is incorrect (the var name is "var*2")
- Read more in "Important Topics"
-
- Database ListViews :
-
- - ListViews can now have fields (or columns) if you load a special
- type of DataBase file - i.e. a file saved in a special format.
- This introduces new notions like fields (which are something like
- variables) - Read about it in the Guide, in "Important Topics".
-
- - LVSort will now also sort by field : LVSort %FieldName
- All sorting is ascending i.e. from small to large
-
- DataBase ListView Commands:
-
- - DBSUM ALL|SELECTED|UNSELECTED %FieldName ResVar
- Will add all specified fields in a DB listview and place the
- result into ResVar.
-
- - RECSORT %FieldName
- Will sort the current record into a DB listview according to
- the given field. To be used when you add or edit a record, instead
- of having to sort the whole lv from scratch.
-
- New ListView Commands:
-
- - LVClip CUT|COPY lines|-1 ADD|PASTE|INSERT gui ID
- Will CUT or COPY the amount of lines specified (or all if -1) from
- the current LV (starting at the current record) and ADD or PASTE or
- INSERT them (after the current record) into the destination LV given.
-
- - LVSwitch Gui ID - Will switch the data of the current listview
- with the one specified. Everything else (IDs, gadget attributes,
- lvmode etc) will remain the same.
-
- - Added the following keywords to LVMULTI:
- SHOW - will refresh the LV
- ALL/NONE - select/deselect *all* lv items
-
- - LVMOVE 0 - will now refresh the LV display.
-
- - If you give the escape code for the "concealed mode" in a listview,
- the text will now be rendered in 3D (since I don't know what the hell
- concealed stands for and multiview ignores it anyway..)
-
- BTW : Its <ESC>[8m -or- <ESC>[32;8m (for white on black shadow)
-
- Attributes to control gadgets :
-
- - ATTR AtributeName Value - (a gadget modifier)
- - SETATTR Gui ID AtributeName Value - (a command)
- can now be used to set various atributes of various gadgets, like
- setting the field color & style in DataBase listviews, the
- distance between lv lines, etc..
-
- Variables :
-
- - New (the last - I promise :) LOCAL variables which are declared
- within the event they belong to, with the gadget modifier :
- LOCALVAR var1/var2/var3 etc..
- These are valid *only* inside the event in which they are declared.
-
- - Now you can use the new - VarName[start][length] - notation on
- all types of variables (env: vars, LV fields, internal vars, normal
- and local vars).
-
- File requesters :
-
- - You can now provide a default file together with the DirName
- (last argument) and it will be shown in the file gadget.
-
- - Put a '#' char in front of the DirName you give, to force a
- requester to open at this same dir every time.
-
- - Requesters will no longer be confused by quoted strings.
-
- Various improvements :
-
- - Mouse positions for WinOnMouse are now taken from IntuitionBase.
- This allows you to pop-up guis at the mouse, when the command to
- open the gui is sent from an other program.
-
- - You can give <Guiscreen #ScreenName FRONT|BACK> now, using the
- actual ScreenName if you want, by putting a # character in front.
-
- - You can now declare an xIcon as "" meaning that you don't want to
- show it yet, or changeicon to "" making it disappear.
-
- - Extract now has 2 new keywords :
- HEX - will convert the number given into Hex notation
- OCT - will convert it into octal notation
-
- - DEBUG mode will no longer print out the GET:/SET: statements.
- You can SET DEBUGVARS ON|OFF, if you prefer the old method.
-
- Bug fixes :
-
- - If you try to act on a file whose dir has been changed, the Dir
- Listviews will now refresh the dir, check if the file still
- exists and if so, they will go ahead and act on it. They used
- to just refresh and stop. It's more intuitive like this.
-
- - LVSave will now set $$Retcode if it fails:
- Can't open file = 10, nothing to save = 5.
-
- - Fixed $$lv.tot which showed 1 record when in "No data" mode.
-
- - LVs now gets updated if OFF, but not updated if HIDEn (even if no
- redrawn given yet).
-
- NOTE : It is *much* faster to HIDE an lv and act on it (with commands
- like lvadd, lvput etc) and then SHOW it again, than to have the LV
- updated continuously while actions are going on. When you show it
- again, you must "nudge" it into redrawing itself - with LVMULTI SHOW
- or LVMOVE 0
-
- - Fixed small bug in guirename (it was case sensitive)
-
-
- ================================================================
- === VERSION 3.4 CHANGES ------------------------------------->>>
- ================================================================
-
- NEW COMMANDS :
-
- - TEXTFILE FileName
- - will mark the start of a text file. Lines of text will be read in
- and writen to "FileName". Use "###" (3 hash characters) to mark the
- end of the text block. They MUST appear at the begining of a line.
- A TEXTFILE can appear anywhere in a gui.
- Good for embedding arexx scripts or data for listviews etc..
-
- - SEARCHVAR Variable String CI|CS FIRST|NEXT
- Search a Variable for a string - FIRST occurrence, NEXT occur.. etc
- Results can be read via internal variables:
- - $$SEARCH.POS = contains the number of the character where the string
- found begins (0 is the 1st character) - or "" if nothing found.
- - $$SEARCH.LENGTH = the total length of the variable.
-
- - REPVAR Variable OldString NewString CI|CS
- Will replace all occurances of OldString in Variable with NewString
- CS means case sensitive, CI not.
-
- - LVREP OldString NewString CI|CS
- Do the replacement on ALL the records of the current listview
-
- - You can now use ++ and -- on a variable, C style - i.e. ++var is the
- same as saying: counter var inc 1. Same for --var.
-
- - IFEXISTS and WAIT now have a negative form, by puting a ~ character
- in front of the name of the item you're looking for.
- - IfExists PORT ~MyPort
- will be TRUE if port "MyPort" does *not* exist.
-
- - You can now hit Control-D in any window to start/stop debug.
-
- BUG FIXES :
-
- - Fixed $$REXXRET which stoped working in V3.3 (a stupid error..)
-
- - Inverted all the GadKey KeyBoard shortcuts : now a normal keypress
- increases a gadget whereas a shifted one decreases it (used to be oposite)
-
- - Enabled binary chars in env variables, so that they can contain
- multiple lines. If last line has a trailing \n it's removed.
-
-
- ================================================================
- === VERSION 3.3 CHANGES ------------------------------------->>>
- ================================================================
-
- Nothing much..
-
- This version was released because Version 3.2 had a bug in it's
- INSTALL routine.
-
- - Fixed a small bug in the LVInsert command which didn't increase
- the $$lv.tot count and did not make the inserted rec current.
-
- - Added a whole lot of new file type checking (by Brian Jones)
- Most types should now be recognised. Also added 1-2 guis.
-
-
- ================================================================
- === VERSION 3.2 CHANGES ------------------------------------->>>
- ================================================================
-
- CHANGES AFFECTING GUIS OF PREVIOUS VERSIONS:
-
- Only one change, which will not greatly affect your guis :
-
- Now a gui's variables are considered to be PRIVATE by default,
- i.e. without having to previously issue the VARPATH command.
- It's more straight forward this way.
-
- If you have any problems, just add the global command:
- - VARPATH '*' - to your guis.
- If you still have problems you must trace down the variables you
- want to have as Global, and put a * in front of them.
-
- HELP:
-
- Now help for gadgets is available through the gadget modifier :
- > GADHELP 'This is some help text'
-
- To turn the help system on/off you can hit the HELP key, or give
- the command SET HELP ON|OFF
-
- NEW EVENTS:
-
- - xPIPE PIPE:FileName ON|OFF
- will launch a new process which will open and monitor a pipe: file
- and will send you any output that any program redirects to it in
- the form of lines of text via the internal variable $$PIPE.TXT
- - SetGad now has a new keyword CLEAN, used *only* for pipes.
-
- NEW COMMANDS:
-
- - xLVINSERT RecordNumber string
- will insert the given string *before* the given record.
- RecordNumber of -1 means the CURRENT record.
-
- - BREAKTASK TaskName CDEF (signals) signals a task named TaskName
- with a given combination of signals - like if you used the Amigados
- break & status commands together. Usefull for stopping programs.
-
- - SET DEEPTRANS ON|OFF - setting DEEPTRANS OFF will stop Gui4Cli from
- translating variables within variables - this will last for one
- execution cycle. This comes useful in the filetype checking routines
- which are now much faster.
-
- - PARTREDRAW GuiName L T W H - will redraw only part of the window.
- Use this if you're just changing some gadgets in one area of the
- window and do not want a full redraw. It's easier on the eyes..
-
- - SETGADVALUES GuiName - will store the values of all the gadgets of
- a gui into their respective variables. This is usefull at the
- start of a gui, when you have to set the default values of your
- variables.
-
- VISUAL EDITING IMPROVEMENTS:
-
- - CONTROL-J while in GUI Visual Editing mode, will now clone the
- gadget in it's own window.
-
- - A GRID is now available, which makes lining up the gadgets much
- easier. By default the grid size is 1 which means "no grid".
- You can set the grid size with "SET GRID 5" (5 is a good size..)
-
- - Gui4Cli will now adjust the position of ghosted gadget you move
- around while editing, to keep it inside the window borders. This
- does not effect inter-gui cloning which works as usual.
-
- - Various small bugs were exterminated (see bug-fixes below).
-
- TEXT IMPROVEMENTS:
-
- - CTEXT last argument (the mask for underline|bold|italic) now works...
- Also, it has 2 more digits :
- Digit #4, is the color number of the "shade" which the letters will be
- shaded with, producing a 3D effect.
- Digit #5, is the size of the shade (defaults to 1)
- You need not declare these two..
-
- - Also in CTEXT, if you give -1 as the background color, the background
- will not be disturbed. Useful for writing over an Image background..
-
- - CTEXT, WINFONT and GADFONT now also recognise the following :
- - #MONO specifying the default Monospace font, and
- - #SCREEN specifying the Screen font, which is usually proportional.
- It is best to use these two in GUIs which you want to distribute.
-
- LISTVIEWS:
-
- - COLORED, fancy text can now be seen in listviews! (only WB 3.0+)
- Listviews will now interpret and render all the console sequences
- which set text color and mode (bold etc). See "Important Topics".
- (also read this text with it..)
-
- - A new type of listview "SHOW" which is exactly like "TXT", except
- that the selected choice will remain highlighted.
-
- DIRECTORY LISTVIEWS:
-
- - DIR ListViews will now show you the directory sizes next to the
- dir name, if you issue a LVAction ..SIZE.. command.
-
- EXTENDED VARIABLE NOTATION:
-
- - NORMAL variables now have extended notation:
-
- - Private GuiName/VarName[start][length]
- - Globals *VarName[start][length]
-
- Apart from the VarName bit, all other components are optional.
- Read all about it in "Important Topics"
-
- NEW INTERNAL VARIABLES:
-
- - $$WIN.PATH will tell you the path of the current or infoed gui.
- (same as extract gui guipath var)
-
- - $$GAD.VAR is the name of the variable that the given gadget will
- store it's value in.
-
- - $$G4C.DEFSCREEN - The screen name which all guis get (default = '*')
- - $$G4C.OUTPUT - The default console output spec
- - $$G4C.FILEPATTERN - The default ASL requester file pattern
- - $$G4C.EDITOR - The default editor name (c:Ed)
- - $$G4C.GUIPATTERN - The dafault gui extension (#?.gc - for the requester)
- - $$G4C.GUILOADDIR - The dir that the G4C load requester will open at
-
- ARGUMENTS FOR ROUTINES:
-
- - New and powerfull improvement (read "GOSUB/GUILOAD" in the guide):
-
- Commands which call other events (like Guiload which calls xOnLoad,
- or GoSub which calls a routine) can now take up to 6 arguments which
- are passed to the routine the given command calls, in the form of
- Internal variables $$ARG.0 to $$ARG.5. -OR- (if defined in the
- event's command line) automatically converted to variables.
-
- $$ARG.TOT contains the actual number of arguments passed.
-
- - Furthermore, RETURN can also now return from the routine or xONLOAD
- etc, with up to 6 more arguments, which are passed back to the
- calling GoSub or GuiOpen etc as internal vars $$RET.0 to $$RET.5.
-
- SCREENS:
-
- - Up to now, the screen name that Gui4Cli used if no Screen had
- been declared for a gui was "Workbench". Now it's the "*" character
- which means "The Front Most Screen". i.e. now, your guis will open
- by default on the front most screen.
-
- - This default screen name can be changed with :
- SET DEFSCREEN Workbench (or whatever..)
- Note : This is *not* the same as the OS's default screen..
-
- BUG FIXES:
-
- - Fixed redrawing of windows when being resized which sometimes
- left trash at the bottom of the window.
-
- - UNLOADIMAGE which did not seem to work in version 3.1, is actually
- called FREEIMAGE. (yes.. I'm not perfect.. it was a big suprise to
- me too..)
-
- - Fixed some bugs in $$lv.rec and LVSearch/LVFind commands.
-
- - Fixed some bugs in GuiEdit. The Cyclers/radios will now save correctly.
- ** HOWEVER ** if you add a cycler or radio (by cloning it) and save the
- gui, you'll have to reload it before you can edit it again, because
- these gads add lines to the gui and Gui4Cli will think it's an error.
- Also fixed some other stuff..
-
- - Fixed SetWinTitle command which effected the titles of other windows.
-
- - Added a version string for the c:version command.
-
- - Fixed extract EXT which did not remove quotes
-
- - Optimised command linking when loading file - Loading should now be
- faster by a nano-pico-millisecond or two...
-
- - Fixed a bug with the initial size of the resizable borders which
- showed up when using the VisualPrefs program (which changes the screen
- structure border sizes).
-
- ================================================================
- History of previous versions donated to the National Museum of Modern
- Art. They didn't want it either, so I printed it out, burned it and
- danced Kartsilama on the ashes..
-
-
-
-